home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / aix.inc < prev    next >
Text File  |  2005-03-31  |  1KB  |  43 lines

  1. #
  2. # $Id: aix.inc,v 1.2 2005/03/17 18:54:28 npouvesle Exp $
  3. #
  4. # (C) Tenable Network Security
  5. #
  6. # aix_check_patch() returns :
  7. #    -1 if a patch is missing
  8. #    0  if a patch is not installed but not required (ie: other architecture)
  9. #    1 if the patch is installed
  10. #
  11. # example : aix_check_patch("5.1", "IY55678", "devices.scsi.tape.rte.5.1.0.50 devices.scsi.tape.diag.5.1.0.50");
  12. function aix_check_patch(release, patch, package) 
  13. {
  14.  local_var showrev, v, flag, packages, p, pattern;
  15.  
  16.  packages = get_kb_item("Host/AIX/lslpp");
  17.  showrev = get_kb_item("Host/AIX/version");
  18.  
  19.  if ( ! packages || ! showrev || !release || !patch || !package) return 0;
  20.  if (release >!< showrev)
  21.    return 0;
  22.  
  23.  package = split(package, sep:" ", keep:FALSE);
  24.  flag=0;
  25.  foreach p (package)
  26.  {
  27.    p = eregmatch(pattern: "^(.*)\.([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)", string: p, icase: 0);
  28.    pattern = p[1] + ":([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)";
  29.    v = eregmatch(pattern: pattern , string: packages, icase: 0);
  30.    if (!isnull(v))
  31.    {
  32.      flag = 1;
  33.      if (v[1] < p[2])
  34.        return -1;
  35.    }
  36.  }
  37.  
  38.  if (flag)
  39.    set_kb_item(name: "Host/AIX/"+patch, value:1);
  40.  
  41.  return flag;
  42. }
  43.